import { PropType } from "vue"
import { FileType } from 'ant-design-vue/es/upload/interface';

export interface ExportConfig {
  url: string
  // 导出文件名
  name?: string | (() => string)
  // 查询参数
  params?: object
  //按钮权限
  auth?: string | string[]
}

export interface ImportConfig {
  url: string;
  tips?: string
  // 是否展示导入模型, 可以对导入进行一些提示以及模板下载
  showModal?: boolean
  // 模板名称
  name?: string
  // 是否展示重复数据执行的操作
  showAction?: boolean
  // 导入成功后的回调
  success?: (fileInfo?: any) => void
  // 导出失败后的回调
  fail?: (error?: any) => void
  //按钮权限
  auth?: string | string[]
}

export const excelProps = {
  bizType: { type: String, required: true },
  acceptFileTypes: { type: String, default: ".xls,.xlsx" },
  exportConfig: { type: Object as PropType<ExportConfig> , default: {} },
  importConfig: { type: Object as PropType<ImportConfig>, default: { } }
};

export const importExcelProps = {
  ...excelProps,
  fileList: { type: Array as PropType<FileType[]>, default: [] },
  /**
   * 导入文件时候，如果数据重新重复的操作
   */
  action: { type: String, default: 'none' }
};

